// 可维护性

// 什么是可维护的代码
/*
*  可理解性
*  直观性
*  可适应性
*  可扩展性
*  可调试性
* */


// 代码约定
/*
*  可读性
*  变量和函数命名
*  变量类型透明
* */


// 松散耦合
/*
* 解耦HTML/Javascript
* 解耦CSS/javaScript
* 解耦应用逻辑/事件处理程序
* */


// 编程实践
/*
* 尊重对象所有权
* 避免全局量
* 避免与null进行比较
* 使用常量
* */

// 性能
// 注意作用域
/*
* 避免全局查找
* 避免width语句
* */
// 选择正确的方法
/*
*  避免不必要的属性查找
*  优化循环
*  展开循环
*  避免双重解释
*  性能的其他注意事项
*     原生方法较快
*     Switch语句较快
*     位运算符较快
* */

// 最小化语句数
/*
*  多个变量声明
*  插入迭代值
*  使用数组和对象字面量
* */
// 优化DOM交互
/*
* 最小化现场跟新
* 使用innerHTML
* 使用事件代理
* 注意HTMLCollection
* */